The present invention relates generally to computer networking; and, more particularly, it relates to improving bandwidth utilization in a packet-switched network via real time control of pause frame transmissions.
Network devices generally adhere to an open systems interconnection (OSI) layered model developed by the International Organization for Standards (ISO) for describing the exchange of information between layers. The OSI layered model is particularly useful for separating the technological functions of each layer, and thereby facilitating the modification or update of a given layer without detrimentally impacting the functions of neighboring layers.
Multiple layers defined in the OSI model are responsible for various functions, including: providing reliable transmission of data over a network; routing data between nodes in a network; initiating, maintaining, and terminating a communication link between users connected to the nodes; performing data transfers within a particular level of service quality; controlling when users are able to transmit and receive data depending on whether the user is capable of full-duplex or half-duplex transmission; translating, converting, compressing, and decompressing data being transmitted across a medium; and providing users with suitable interfaces for accessing and connecting to a network. The lower portion of the OSI model includes a media access control (MAC) layer, which generally schedules and controls the access of data to a physical layer (PHY).
As the lower-most portion of the OSI model, the PHY layer is responsible for encoding and decoding data into signals that are transmitted across a particular medium, such as a cable. To enable transmission to a particular medium, the PHY layer also includes a physical connector that is configured and operable to receive the transmission medium.
Congestion is a potential problem in most networks. Congestion may occur if network devices attempt to simultaneously communicate too much data across a network. The bandwidth of the network can thus be exceeded, resulting in transmission errors, lost data and/or substantial delays in data transmission. Congestion is typically controlled by sensing the traffic in the network at the various nodes, sending special information packets between nodes to notify the other nodes of the magnitude and type of congestion, and delaying transmission of data at specified nodes in accordance with a predetermined flow control mechanism.
Flow control may be enabled by signals generated by a variety of modules or mechanisms. For example, a relatively large amount of packet traffic over a particular port in a switch or similar receiving device may cause the transmit queue associated with that port to reach a predetermined threshold value. In this situation, the switch generally instructs the transmitting device to delay communications such that information in the transmit queue may be sent. In Ethernet/IEEE 802.3x-compliant systems, the switch sends a xe2x80x9cpausexe2x80x9d frame to the transmitting device. The pause frame contains a parameter field specifying a pause time value directing the transmitting device to inhibit transmissions for the specified amount of time. If congestion eases before the expiration of the specified amount of time, the switch may resume normal communications by sending a second pause frame with a pause time value of zero.
Under certain circumstances, the flow control condition requiring a pause frame may change immediately before or during the transmission of the pause frame. In existing systems, however, there is no mechanism for nullifying the pause frame once transmission has begun. Instead, the flow control module must trigger a remedial pause frame with a pause time of zero to neutralize the pause frame that was just sent. In addition, a network device receiving the initial pause frame may be required to respond, further reducing the amount of bandwidth available for data transmissions.
Briefly, the present invention relates to a method and circuitry for improving bandwidth utilization in a packet-switched network via real time control of pause frame transmissions. The invention provides a mechanism whereby a pause frame may be effectively negated if, during the transmission of the pause frame, the network conditions necessitating the pause frame are eliminated or abated.
In one Ethernet-compliant embodiment of the invention, monitoring circuitry is provided in a network device to ascertain changes in flow control conditions. Following detection of a flow control condition (e.g., a transmit buffer overflow condition), a flow control unit in the network device initiates transmission of a pause frame. Typically, the initial pause time value will be set to a maximum value (e.g., xe2x80x9cFFFFxe2x80x9d). During or immediately prior to transmission of the pause frame, the monitoring circuitry functions to monitor the state of the flow control unit or flow control enablement signals to determine if the flow control condition remains in effect. If the monitoring circuitry determines that the flow control condition has been negated, the status of the pause frame transmission is then determined. If the pause time value has not been transmitted, the monitoring circuitry causes a reduced pause time value (e.g., xe2x80x9c0000xe2x80x9d) to be transmitted, thereby effectively negating potentially deleterious effects on network bandwidth that might otherwise result from the original pause frame.
In an alternate embodiment of the invention, if the monitoring circuitry determines that the flow control condition giving rise to the pause frame has been negated, the frame check sequence/cyclic redundancy check value at the end of the pause frame is invalidated. A network device(s) receiving such a frame will identify it as invalid and the frame will be discarded. This embodiment of the invention may be utilized, for example, if the initial pause time value has already been transmitted or is in the process of being transmitted when the flow control condition changes state. Further, the monitoring circuitry may be configured to cause the pause time value to revert to its original value should the flow control condition (or another flow control condition) be reasserted prior to completion of the pause frame transmittal. Various combinations of these embodiments may be utilized to maximize the performance of the system.
A network device implemented according to the present invention thereby maximizes bandwidth utilization and data throughput by transmitting fewer pause frames or pause frames specifying shorter pause time durations than conventional systems. In addition, the network device reduces or eliminates unnecessary responses from attached devices, resulting in improved performance for both out-going and incoming network traffic.